In CAD/CAM (Computer Aided Design/Computer Aided Manufacturing) and many other industries, one needs to view and interact with three-dimensional (3D) models obtained from a local machine or a remote server. These 3D models contain both geometry and surface features. The geometry of a model defines its shape, typically as a set of vertices and their connectivity. The connectivity of a model defines how the vertices are connected together to form the surface of the model. For example, vertices are often connected together as triangles or quadrilaterals. These surface shapes are often referred to as polygons. The surface features of a model contain additional information in the form of attributes and annotations. The attributes refer to data values specified for the geometry of the model, such as colors or normals. These values may be specified for each of the vertices, for each of the polygons, or for each vertex/polygon pair, also referred to as a corner. Annotations are used to provide further information about the model, often in the form of line segments or text mapped onto the surface of the model. For example, if the 3D model was of a geographic region, the annotations could include the roads, rivers, cities, their names, for that geographic region. Another example, within the CAD/CAM domain, is to highlight the original mesh structure, i.e. wireframe, of a geometric model. This mesh structure contains line segments, also known as edges, between the vertices of the model.
There is a growing need to represent complex three-dimensional models by simplified versions that are less expensive to store in memory on a computer, faster to transmit across a network from one computer to another computer, and faster to render on a computer. To address this great need, many techniques have been developed to simplify a model with minimal loss in perceived quality. See, for example, U.S. Pat. No. 5,929,860 or the article “Surface Simplification Using Quadric Error Metrics,” by M. Garland and P. Heckbert, in Computer Graphics Proceedings, Annual Conference Series, 1997, pages 209–216. Such techniques attempt to reduce the geometry of the model so that when the simplified model is rendered on a computer, the viewer will be able to perceive few, if any, differences as compared to a rendering of the original model. To accomplish this goal, many of the simplification techniques take the attributes of the model into account as well when simplifying the geometry. See, for example, U.S. Pat. No. 6,100,902; P. Cignoni, C. Montani, C. Rocchini, and R. Scopigno, “A General Method for Preserving Attribute Values on Simplified Meshes”, Proceedings of IEEE Visualization, pages 59–66, 1998; M. Garland and P. Heckbert, “Simplifying Surfaces with Color and Texture Using Quadric Error Metrics,” Proceedings of IEEE Visualization, pages 264–269, 1998; and H. Hoppe, “New Quadric Metric for Simplifying Meshes with Appearance Attributes,” Proceedings of IEEE Visualization, pages 59–66, 1999. These techniques let the attributes guide the simplification process so that the geometry and the attributes of the simplified model appear the same as in the original model. To further preserve the overall appearance of the model, the annotations must be mapped onto the simplified model when simplification techniques are utilized, since the annotations can convey a significant amount of information.
To convey information about a model to the viewer, there is clearly a need to map the annotations of the model onto its original surface, or a simplified version of its surface in those instances when simplification has been utilized. We often refer to this mapping operation as “draping” the annotations onto the surface of the model.
Texture mapping, thoroughly described by P. Heckbert in “Survey of Texture Mapping”, IEEE Computer Graphics and Applications, volume 6, number 11, pages 56–67, November 1986, refers to a technique for mapping an image onto the surface of a model. For example, let us say that we have a model of a wooden door. To convey the actual grain of the wood, we could include that within the model itself, however this would require a significant amount of additional geometry. To avoid this added complexity, texture mapping allows us to take a small image of the wood grain and map this onto the entire model so that the rendered image appears the same as if we used geometry to convey the wood grain.
Texture mapping has been commonly used to map annotations onto the surface of a model. To accomplish this, the annotations are first rendered as an image and stored in the memory of a computer. When the model is being viewed, the texture map of the annotations is applied to the surface of the model to convey the additional information provided by the annotations. Using such an approach, the annotations of a model can be mapped onto the original or simplified surface of the model, since they are stored in the form of an image.